<?

/*
 * 文件上传函数
 * $upfile 上传的文件 例: $prom["upfile"] = $_FILES["upfile1"]
 * $path :           例: $prom["path"] = '../../uploadfiles/' . $theme_folder . '/'
 * $allowExt         例: $prom["allowExt"] = array('jpeg','jpg','png','gif','html','txt');
 * 返回照片名称
 */
function upload_file($prom)
{
    $upfile   = $prom["upfile"];
    $path     = $prom["path"];
    $allowExt = $prom["allowExt"];


    //判断文件是否有效
    $error = $upfile["error"];
    if ($error == 0) {
        $name = $upfile["name"];
        //检测上传文件的文件类型
        $ext=getExt($name);
        //echo $ext;

        //如果不设置限制，就随意可以上传
        if($allowExt)
        {
        if(!in_array($ext,$allowExt))
        {
            echo $name.'非法文件类型';
            return "非法文件类型";
        }
        }
//        else
//        {
//            echo "无设置文件类型限制";
//        }

        //如果没有这个文件夹，那么就创建一
        if(!file_exists($path)){
            mkdir($path,0777,true);
            chmod($path,0777);
        }
        //获取当前日期
        $datename = date("Y-m-d H:i:s");
        $datename = str_replace("-", "", $datename);
        $datename = str_replace(" ", "", $datename);
        $datename = str_replace(":", "", $datename);
        $datename = $datename . "1";

        //上传的文件名改为时间命名
        $cutto = strrpos($name, "."); //返回第二个字符串在第一个字符串第一次出现的位置，第一个字符位置算0
        $name = substr_replace($name, $datename, 0, $cutto);

        $type = $upfile["type"]; //上传文件的类型
        $size = $upfile["size"]; //上传文件的大小
        $tmp_name = $upfile["tmp_name"]; //上传文件的临时存放路径
        $error = $upfile["error"]; //上传后系统返回的值
        //把上传的临时文件移动到up目录下面
        //把上传的临时文件移动到up目录下面
        if(move_uploaded_file($tmp_name, $path . $name)){
            //echo "文件上传成功啦！";
            //echo "上传文件名称是：" . $name . "<br/>";
            //echo "上传文件类型是：" . $type . "<br/>";
            //echo "上传文件大小是：" . $size . "<br/>";
            //echo "上传后系统返回的值是：" . $error . "<br/>";
            //echo "上传文件的临时存放路径是：" . $tmp_name . "<br/>";
            $result['name']=$name;
            $result['type']=$type;
            $result['size']=$size;
            return $result;
        }
        return "";
    } else {

        if ($error == 1) {
            echo "超过了文件大小，在php.ini文件中设置";
        } elseif ($error == 2) {
            echo "超过了文件的大小MAX_FILE_SIZE选项指定的值";
        } elseif ($error == 3) {
            echo "文件只有部分被上传";
        } elseif ($error == 4) {
            echo "没有文件被上传";
        } else {
            echo "上传文件大小为0";
        }

    }
    return "end";
}

//得到文件扩展名
function getExt($filename){
    return strtolower(pathinfo($filename,PATHINFO_EXTENSION));
}

?>
